<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/string.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/string.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="Maybe">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X0xJTlVYX1NUUklOR19IX18w"><span class="b">_LINUX_STRING_H_</span></a>
<a name="2" /><span class="Maybe">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X0xJTlVYX1NUUklOR19IX18w"><span class="b">_LINUX_STRING_H_</span></a>
<a name="3" /><span class="Maybe">       3:</span> 
<a name="4" /><span class="Maybe">       4:</span> 
<a name="5" /><span class="Maybe">       5:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">compiler</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>    <span class="k">/* for inline */</span>
<a name="6" /><span class="Maybe">       6:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>    <span class="k">/* for size_t */</span>
<a name="7" /><span class="Maybe">       7:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">stddef</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>    <span class="k">/* for NULL */</span>
<a name="8" /><span class="Maybe">       8:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">stdarg</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="9" /><span class="Maybe">       9:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">uapi</span><span class="f">/</span><span class="b">linux</span><span class="f">/</span><span class="b">string</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="10" /><span class="Maybe">      10:</span> 
<a name="11" /><span class="Maybe">      11:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span><span class="b">strndup_user</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <a href="cpu.c_macros_ref.html#_X191c2VyXzA_"><span class="b">__user</span></a> <span class="f">*</span><span class="f">,</span> <span class="m">long</span><span class="f">)</span><span class="f">;</span>
<a name="12" /><span class="Maybe">      12:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">*</span><span class="b">memdup_user</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X191c2VyXzA_"><span class="b">__user</span></a> <span class="f">*</span><span class="f">,</span> <span class="b">size_t</span><span class="f">)</span><span class="f">;</span>
<a name="13" /><span class="Maybe">      13:</span> 
<a name="14" /><span class="Maybe">      14:</span> <span class="k">/*</span>
<a name="15" /><span class="Maybe">      15:</span> <span class="k"> * Include machine specific inline routines</span>
<a name="16" /><span class="Maybe">      16:</span> <span class="k"> */</span>
<a name="17" /><span class="Maybe">      17:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">string</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="18" /><span class="Maybe">      18:</span> 
<a name="19" /><span class="Maybe">      19:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRCPY</span>
<a name="20" /><span class="Maybe">      20:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strcpy</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="21" /><span class="Maybe">      21:</span> <span class="f">#</span><span class="n">endif</span>
<a name="22" /><span class="Maybe">      22:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRNCPY</span>
<a name="23" /><span class="Maybe">      23:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strncpy</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="24" /><span class="Maybe">      24:</span> <span class="f">#</span><span class="n">endif</span>
<a name="25" /><span class="Maybe">      25:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRLCPY</span>
<a name="26" /><span class="Maybe">      26:</span> <span class="b">size_t</span> <span class="b">strlcpy</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">size_t</span><span class="f">)</span><span class="f">;</span>
<a name="27" /><span class="Maybe">      27:</span> <span class="f">#</span><span class="n">endif</span>
<a name="28" /><span class="Maybe">      28:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRCAT</span>
<a name="29" /><span class="Maybe">      29:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strcat</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="30" /><span class="Maybe">      30:</span> <span class="f">#</span><span class="n">endif</span>
<a name="31" /><span class="Maybe">      31:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRNCAT</span>
<a name="32" /><span class="Maybe">      32:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strncat</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="33" /><span class="Maybe">      33:</span> <span class="f">#</span><span class="n">endif</span>
<a name="34" /><span class="Maybe">      34:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRLCAT</span>
<a name="35" /><span class="Maybe">      35:</span> <span class="m">extern</span> <span class="b">size_t</span> <span class="b">strlcat</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="36" /><span class="Maybe">      36:</span> <span class="f">#</span><span class="n">endif</span>
<a name="37" /><span class="Maybe">      37:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRCMP</span>
<a name="38" /><span class="Maybe">      38:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">strcmp</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="39" /><span class="Maybe">      39:</span> <span class="f">#</span><span class="n">endif</span>
<a name="40" /><span class="Maybe">      40:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRNCMP</span>
<a name="41" /><span class="Maybe">      41:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">strncmp</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="42" /><span class="Maybe">      42:</span> <span class="f">#</span><span class="n">endif</span>
<a name="43" /><span class="Maybe">      43:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRNICMP</span>
<a name="44" /><span class="Maybe">      44:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">strnicmp</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="45" /><span class="Maybe">      45:</span> <span class="f">#</span><span class="n">endif</span>
<a name="46" /><span class="Maybe">      46:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRCASECMP</span>
<a name="47" /><span class="Maybe">      47:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">strcasecmp</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s1</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s2</span><span class="f">)</span><span class="f">;</span>
<a name="48" /><span class="Maybe">      48:</span> <span class="f">#</span><span class="n">endif</span>
<a name="49" /><span class="Maybe">      49:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRNCASECMP</span>
<a name="50" /><span class="Maybe">      50:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">strncasecmp</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s1</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s2</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">n</span><span class="f">)</span><span class="f">;</span>
<a name="51" /><span class="Maybe">      51:</span> <span class="f">#</span><span class="n">endif</span>
<a name="52" /><span class="Maybe">      52:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRCHR</span>
<a name="53" /><span class="Maybe">      53:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strchr</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">int</span><span class="f">)</span><span class="f">;</span>
<a name="54" /><span class="Maybe">      54:</span> <span class="f">#</span><span class="n">endif</span>
<a name="55" /><span class="Maybe">      55:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRNCHR</span>
<a name="56" /><span class="Maybe">      56:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strnchr</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">size_t</span><span class="f">,</span> <span class="m">int</span><span class="f">)</span><span class="f">;</span>
<a name="57" /><span class="Maybe">      57:</span> <span class="f">#</span><span class="n">endif</span>
<a name="58" /><span class="Maybe">      58:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRRCHR</span>
<a name="59" /><span class="Maybe">      59:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strrchr</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">int</span><span class="f">)</span><span class="f">;</span>
<a name="60" /><span class="Maybe">      60:</span> <span class="f">#</span><span class="n">endif</span>
<a name="61" /><span class="Maybe">      61:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <a href="cpu.c_macros_ref.html#_X19tdXN0X2NoZWNrXzE_"><span class="b">__must_check</span></a> <span class="b">skip_spaces</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="62" /><span class="Maybe">      62:</span> 
<a name="63" /><span class="Maybe">      63:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span><span class="b">strim</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="64" /><span class="Maybe">      64:</span> 
<a name="65" /><span class="Maybe">      65:</span> <span class="m">static</span> <span class="m">inline</span> <a href="cpu.c_macros_ref.html#_X19tdXN0X2NoZWNrXzE_"><span class="b">__must_check</span></a> <span class="m">char</span> <span class="f">*</span><span class="b">strstrip</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">)</span>
<a name="66" /><span class="Maybe">      66:</span> <span class="f">{</span>
<a name="67" /><span class="Maybe">      67:</span>     <span class="m">return</span> <span class="b">strim</span><span class="f">(</span><span class="b">str</span><span class="f">)</span><span class="f">;</span>
<a name="68" /><span class="Maybe">      68:</span> <span class="f">}</span>
<a name="69" /><span class="Maybe">      69:</span> 
<a name="70" /><span class="Maybe">      70:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRSTR</span>
<a name="71" /><span class="Maybe">      71:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strstr</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="72" /><span class="Maybe">      72:</span> <span class="f">#</span><span class="n">endif</span>
<a name="73" /><span class="Maybe">      73:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRNSTR</span>
<a name="74" /><span class="Maybe">      74:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strnstr</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">size_t</span><span class="f">)</span><span class="f">;</span>
<a name="75" /><span class="Maybe">      75:</span> <span class="f">#</span><span class="n">endif</span>
<a name="76" /><span class="Maybe">      76:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRLEN</span>
<a name="77" /><span class="Maybe">      77:</span> <span class="m">extern</span> <span class="b">__kernel_size_t</span> <span class="b">strlen</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="78" /><span class="Maybe">      78:</span> <span class="f">#</span><span class="n">endif</span>
<a name="79" /><span class="Maybe">      79:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRNLEN</span>
<a name="80" /><span class="Maybe">      80:</span> <span class="m">extern</span> <span class="b">__kernel_size_t</span> <span class="b">strnlen</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="81" /><span class="Maybe">      81:</span> <span class="f">#</span><span class="n">endif</span>
<a name="82" /><span class="Maybe">      82:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRPBRK</span>
<a name="83" /><span class="Maybe">      83:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strpbrk</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="84" /><span class="Maybe">      84:</span> <span class="f">#</span><span class="n">endif</span>
<a name="85" /><span class="Maybe">      85:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRSEP</span>
<a name="86" /><span class="Maybe">      86:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span> <span class="b">strsep</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="87" /><span class="Maybe">      87:</span> <span class="f">#</span><span class="n">endif</span>
<a name="88" /><span class="Maybe">      88:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRSPN</span>
<a name="89" /><span class="Maybe">      89:</span> <span class="m">extern</span> <span class="b">__kernel_size_t</span> <span class="b">strspn</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="90" /><span class="Maybe">      90:</span> <span class="f">#</span><span class="n">endif</span>
<a name="91" /><span class="Maybe">      91:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_STRCSPN</span>
<a name="92" /><span class="Maybe">      92:</span> <span class="m">extern</span> <span class="b">__kernel_size_t</span> <span class="b">strcspn</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="93" /><span class="Maybe">      93:</span> <span class="f">#</span><span class="n">endif</span>
<a name="94" /><span class="Maybe">      94:</span> 
<a name="95" /><span class="False">      95:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X19IQVZFX0FSQ0hfTUVNU0VUXzA_"><span class="b">__HAVE_ARCH_MEMSET</span></a>
<a name="96" /><span class="False">      96:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">*</span> <span class="b">memset</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="m">int</span><span class="f">,</span><span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="97" /><span class="Maybe">      97:</span> <span class="f">#</span><span class="n">endif</span>
<a name="98" /><span class="False">      98:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X19IQVZFX0FSQ0hfTUVNQ1BZXzA_"><span class="b">__HAVE_ARCH_MEMCPY</span></a>
<a name="99" /><span class="False">      99:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">*</span> <a href="cpu.c_macros_ref.html#_bWVtY3B5XzA_"><span class="b">memcpy</span></a><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="100" /><span class="Maybe">     100:</span> <span class="f">#</span><span class="n">endif</span>
<a name="101" /><span class="False">     101:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X19IQVZFX0FSQ0hfTUVNTU9WRV8w"><span class="b">__HAVE_ARCH_MEMMOVE</span></a>
<a name="102" /><span class="False">     102:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">*</span> <span class="b">memmove</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="103" /><span class="Maybe">     103:</span> <span class="f">#</span><span class="n">endif</span>
<a name="104" /><span class="Maybe">     104:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_MEMSCAN</span>
<a name="105" /><span class="Maybe">     105:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">*</span> <span class="b">memscan</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="m">int</span><span class="f">,</span><span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="106" /><span class="Maybe">     106:</span> <span class="f">#</span><span class="n">endif</span>
<a name="107" /><span class="Maybe">     107:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_MEMCMP</span>
<a name="108" /><span class="Maybe">     108:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">memcmp</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="109" /><span class="Maybe">     109:</span> <span class="f">#</span><span class="n">endif</span>
<a name="110" /><span class="Maybe">     110:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_MEMCHR</span>
<a name="111" /><span class="Maybe">     111:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">*</span> <span class="b">memchr</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="f">,</span><span class="m">int</span><span class="f">,</span><span class="b">__kernel_size_t</span><span class="f">)</span><span class="f">;</span>
<a name="112" /><span class="Maybe">     112:</span> <span class="f">#</span><span class="n">endif</span>
<a name="113" /><span class="Maybe">     113:</span> <span class="m">void</span> <span class="f">*</span><span class="b">memchr_inv</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">s</span><span class="f">,</span> <span class="m">int</span> <span class="b">c</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">n</span><span class="f">)</span><span class="f">;</span>
<a name="114" /><span class="Maybe">     114:</span> 
<a name="115" /><span class="Maybe">     115:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span><span class="b">kstrdup</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s</span><span class="f">,</span> <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span><span class="f">;</span>
<a name="116" /><span class="Maybe">     116:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span><span class="b">kstrndup</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">len</span><span class="f">,</span> <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span><span class="f">;</span>
<a name="117" /><span class="Maybe">     117:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">*</span><span class="b">kmemdup</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">src</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">len</span><span class="f">,</span> <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span><span class="f">;</span>
<a name="118" /><span class="Maybe">     118:</span> 
<a name="119" /><span class="Maybe">     119:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span><span class="f">*</span><span class="b">argv_split</span><span class="f">(</span><span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">,</span> <span class="m">int</span> <span class="f">*</span><span class="b">argcp</span><span class="f">)</span><span class="f">;</span>
<a name="120" /><span class="Maybe">     120:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">argv_free</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">*</span><span class="b">argv</span><span class="f">)</span><span class="f">;</span>
<a name="121" /><span class="Maybe">     121:</span> 
<a name="122" /><span class="Maybe">     122:</span> <span class="m">extern</span> <span class="m">bool</span> <span class="b">sysfs_streq</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s1</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s2</span><span class="f">)</span><span class="f">;</span>
<a name="123" /><span class="Maybe">     123:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">strtobool</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">s</span><span class="f">,</span> <span class="m">bool</span> <span class="f">*</span><span class="b">res</span><span class="f">)</span><span class="f">;</span>
<a name="124" /><span class="Maybe">     124:</span> 
<a name="125" /><span class="Maybe">     125:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX0JJTkFSWV9QUklOVEZfMA__"><span class="b">CONFIG_BINARY_PRINTF</span></a>
<a name="126" /><span class="Maybe">     126:</span> <span class="m">int</span> <span class="b">vbin_printf</span><span class="f">(</span><a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="f">*</span><span class="b">bin_buf</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">fmt</span><span class="f">,</span> <span class="b">va_list</span> <span class="b">args</span><span class="f">)</span><span class="f">;</span>
<a name="127" /><span class="Maybe">     127:</span> <span class="m">int</span> <span class="b">bstr_printf</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="b">buf</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">fmt</span><span class="f">,</span> <span class="m">const</span> <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="f">*</span><span class="b">bin_buf</span><span class="f">)</span><span class="f">;</span>
<a name="128" /><span class="Maybe">     128:</span> <span class="m">int</span> <span class="b">bprintf</span><span class="f">(</span><a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="f">*</span><span class="b">bin_buf</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">fmt</span><span class="f">,</span> <span class="f">...</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19wcmludGZfMA__"><span class="b">__printf</span></a><span class="f">(</span><span class="c">3</span><span class="f">,</span> <span class="c">4</span><span class="f">)</span><span class="f">;</span>
<a name="129" /><span class="Maybe">     129:</span> <span class="f">#</span><span class="n">endif</span>
<a name="130" /><span class="Maybe">     130:</span> 
<a name="131" /><span class="Maybe">     131:</span> <span class="m">extern</span> <span class="b">ssize_t</span> <span class="b">memory_read_from_buffer</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="b">to</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">count</span><span class="f">,</span> <span class="b">loff_t</span> <span class="f">*</span><span class="b">ppos</span><span class="f">,</span>
<a name="132" /><span class="Maybe">     132:</span>             <span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">from</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">available</span><span class="f">)</span><span class="f">;</span>
<a name="133" /><span class="Maybe">     133:</span> 
<a name="134" /><span class="Maybe">     134:</span> <span class="k">/**</span>
<a name="135" /><span class="Maybe">     135:</span> <span class="k"> * strstarts - does @str start with @prefix?</span>
<a name="136" /><span class="Maybe">     136:</span> <span class="k"> * @str: string to examine</span>
<a name="137" /><span class="Maybe">     137:</span> <span class="k"> * @prefix: prefix to look for.</span>
<a name="138" /><span class="Maybe">     138:</span> <span class="k"> */</span>
<a name="139" /><span class="Maybe">     139:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">bool</span> <span class="b">strstarts</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">prefix</span><span class="f">)</span>
<a name="140" /><span class="Maybe">     140:</span> <span class="f">{</span>
<a name="141" /><span class="Maybe">     141:</span>     <span class="m">return</span> <span class="b">strncmp</span><span class="f">(</span><span class="b">str</span><span class="f">,</span> <span class="b">prefix</span><span class="f">,</span> <span class="b">strlen</span><span class="f">(</span><span class="b">prefix</span><span class="f">)</span><span class="f">)</span> <span class="f">==</span> <span class="c">0</span><span class="f">;</span>
<a name="142" /><span class="Maybe">     142:</span> <span class="f">}</span>
<a name="143" /><span class="Maybe">     143:</span> 
<a name="144" /><span class="Maybe">     144:</span> <span class="m">extern</span> <span class="b">size_t</span> <span class="b">memweight</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">bytes</span><span class="f">)</span><span class="f">;</span>
<a name="145" /><span class="Maybe">     145:</span> 
<a name="146" /><span class="Maybe">     146:</span> <span class="k">/**</span>
<a name="147" /><span class="Maybe">     147:</span> <span class="k"> * kbasename - return the last part of a pathname.</span>
<a name="148" /><span class="Maybe">     148:</span> <span class="k"> *</span>
<a name="149" /><span class="Maybe">     149:</span> <span class="k"> * @path: path to extract the filename from.</span>
<a name="150" /><span class="Maybe">     150:</span> <span class="k"> */</span>
<a name="151" /><span class="Maybe">     151:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">kbasename</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">path</span><span class="f">)</span>
<a name="152" /><span class="Maybe">     152:</span> <span class="f">{</span>
<a name="153" /><span class="Maybe">     153:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">tail</span> <span class="f">=</span> <span class="b">strrchr</span><span class="f">(</span><span class="b">path</span><span class="f">,</span> <span class="d">&apos;/&apos;</span><span class="f">)</span><span class="f">;</span>
<a name="154" /><span class="Maybe">     154:</span>     <span class="m">return</span> <span class="b">tail</span> <span class="f">?</span> <span class="b">tail</span> <span class="f">+</span> <span class="c">1</span> <span class="f">:</span> <span class="b">path</span><span class="f">;</span>
<a name="155" /><span class="Maybe">     155:</span> <span class="f">}</span>
<a name="156" /><span class="Maybe">     156:</span> 
<a name="157" /><span class="True">     157:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_STRING_H_ */</span>
<a name="158" /><span class="True">     158:</span> </pre>
  </body>
</html>
